/*
编写函数，统计一个字符中不同字符出现的次数，若某个字符连续出现多次，
要求多次出现只按一次出现计算。如abcbbbd中，b出现的次数为2。
*/
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define maxsize 10
void Count(char *a,int n)
{
	int i, b[maxsize];
	b[0]=1;//首字符置1
	for(i=1;i<n;i++)//把连续的字符只选择首次出现(通过b[i]=1实现)
	{
		if(a[i]==a[i-1])  //确定出现的次数，如果是连续的，置0，非连续置1
			b[i]=0;
		else
			b[i]=1;
	}
	for(i=0;i<n;i++)
	{
		if(b[i]!=0)//b[i]不为0，说明这个字符是首次出现
		{
			int sum=b[i];  //记录每个字符出现的总的次数
		    for(int j=i+1;j<n;j++)//考虑不连续但是相同的字符，通过快慢下标判断，如果相同，加入a[i]的总数里面，并把后续相同的b[j]置为0
			{
				if(a[j]==a[i])
				{
					sum=sum+b[j];
					b[j]=0;    //已纳入记录的后续相同的字符置0不再遍历
				}
			}
			printf("字符%c出现的次数是%d\n",a[i],sum);
		}
		
	}
}
void count(char *a,int n){
	int b[maxsize];
	b[0]=1;
	for(int i=1;i<n;i++){
		if(a[i-1]==a[i])//如果是连续的，置0，非连续置1
			b[i]=0;
		else	
			b[i]=1;
	}
	for(int i=0;i<n;i++){
		if(b[i]){
			int sum=b[i];
			for(int j=i+1;j<n;j++){
				if(a[j]==a[i]){
					sum+=b[j];
					b[j]=0;
				}
			}
		}
		printf("%c,%d",a[i],sum);
	}
}
int main(){
	char s[6]={'a','b','b','a','c','\0'};
	Count(s,sizeof(s)/sizeof(s[0])-1);
	return 0;
}